'use strict';

const Controller = require('egg').Controller;

class BookController extends Controller {
  async index() {
    const ctx = this.ctx;
    ctx.body = await ctx.sqlModel.Book.findAll({});
  }

  async show() {
    const ctx = this.ctx;
    ctx.body = await ctx.sqlModel.Book.findByPk(+ctx.params.id);
  }

  async create() {
    const ctx = this.ctx;
    ctx.body = await ctx.sqlModel.Book.create(ctx.request.body);
  }

  async update() {
    const ctx = this.ctx;
    const book = await ctx.sqlModel.Book.findByPk(+ctx.params.id);
    if (!book) return (ctx.status = 404);
    await book.update(ctx.request.body);
    ctx.body = book;
  }

  async destroy() {
    const ctx = this.ctx;
    const book = await ctx.sqlModel.Book.findByPk(+ctx.params.id);
    if (!book) return (ctx.status = 404);
    await book.destroy();
    ctx.body = book;
  }
}

module.exports = BookController;
